home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / swtools / mipsABI / examples / sup / PORT / step03 / run.c.diff < prev    next >
Encoding:
Text File  |  1994-08-02  |  1.4 KB  |  55 lines

  1. *** ../dist/run.c    Thu Dec 16 07:29:31 1993
  2. --- run.c    Thu Dec 16 14:59:38 1993
  3. ***************
  4. *** 140,146 ****
  5. --- 140,150 ----
  6.   {
  7.       int wpid;
  8.       register int pid;
  9. + #ifdef _ABI_SOURCE
  10. +     struct sigaction ignoresig,intsig,quitsig;
  11. + #else
  12.       struct sigvec ignoresig,intsig,quitsig;
  13. + #endif
  14.       union wait status;
  15.       int execvp(), execv();
  16.       int (*execrtn)() = usepath ? execvp : execv;
  17. ***************
  18. *** 156,166 ****
  19. --- 160,178 ----
  20.           _exit (0377);
  21.       }
  22.   
  23. + #ifdef _ABI_SOURCE
  24. +     ignoresig.sa_handler = SIG_IGN;    /* ignore INT and QUIT signals */
  25. +     sigemptyset (&(ignoresig.sa_mask));
  26. +     ignoresig.sa_flags = 0;
  27. +     sigvec (SIGINT,&ignoresig,&intsig);
  28. +     sigvec (SIGQUIT,&ignoresig,&quitsig);
  29. + #else
  30.       ignoresig.sv_handler = SIG_IGN;    /* ignore INT and QUIT signals */
  31.       ignoresig.sv_mask = 0;
  32.       ignoresig.sv_onstack = 0;
  33.       sigvec (SIGINT,&ignoresig,&intsig);
  34.       sigvec (SIGQUIT,&ignoresig,&quitsig);
  35. + #endif
  36.       do {
  37.           wpid = wait3 (&status.w_status, WUNTRACED, 0);
  38.           if (WIFSTOPPED (status)) {
  39. ***************
  40. *** 168,175 ****
  41. --- 180,192 ----
  42.               wpid = 0;
  43.           }
  44.       } while (wpid != pid && wpid != -1);
  45. + #ifdef _ABI_SOURCE
  46. +     sigaction (SIGINT,&intsig,0);    /* restore signals */
  47. +     sigaction (SIGQUIT,&quitsig,0);
  48. + #else
  49.       sigvec (SIGINT,&intsig,0);    /* restore signals */
  50.       sigvec (SIGQUIT,&quitsig,0);
  51. + #endif
  52.   
  53.       if (WIFSIGNALED (status) || status.w_retcode == 0377)
  54.           return (-1);
  55.